#ifndef CRITICALSECTION_H
#define CRITICALSECTION_H

#include "ISyncObject.h"
#include "NonCopyable.h"
#include <Windows.h>

namespace syncLib
{

    class CriticalSection : public ISyncObject, private NonCopyable
    {
    public:
        CriticalSection();
        ~CriticalSection();
    public:
        virtual void Lock();
        virtual void UnLock();

    private:
        CRITICAL_SECTION mCritSection_;
    };

};

#endif // CRITICALSECTION_H
